package cn.huijielong.modules.oss.cloud;

import java.io.InputStream;

import cn.huijielong.modules.oss.entity.Oss;
import cn.huijielong.modules.oss.entity.OssBucket;

public abstract class CloudStorage {
	/** 云存储配置信息 */
	Oss oss;
	OssBucket ossBucket;
    
    /**
     * 删除文件
     * @param path
     * @return
     */
	public boolean delete(String path) {
		return false;
	}
	/**
	 * 删除文件
	 * @param path
	 * @param bucket
	 * @return
	 */
	public boolean delete(String path,String bucket) {
		return false;
	}

    /**
     * 文件上传
     * @param data    文件字节数组
     * @param path    文件路径，包含文件名
     * @return        返回http地址
     */
    public abstract String upload(byte[] data, String path);

    /**
     * 文件上传
     * @param inputStream   字节流
     * @param path          文件路径，包含文件名
     * @return              返回http地址
     */
    public abstract String upload(InputStream inputStream, String path);

    /**
     * 获取私有文件的下载地址
     * @param targetUrl
     * @return
     */
    public abstract String getPrivateUrl(String targetUrl);
    /**
     * 批量删除文件
     * @param path
     * @return
     */
	public abstract boolean deleteBatch(String... path);
	/**
	 * 批量删除文件
	 * @param bucket
	 * @param path
	 * @return
	 */
	public abstract boolean deleteBatch(String bucket, String...path);
	
	public abstract void close();
}
